package cn.edu.wynu;

import java.util.Scanner;

public class Test03 {
    public static void main(String[] args) {
        // 案例三：评委打分案例
        // 需求：在唱歌比赛中，可能有多名评委要给选手打分，分数是[0-100]之间的整数。
        // 选手最后得分为:去掉最高分、最低分后剩余分数的平均分，请编写程序能够录入多名评委的分数，并算出选手的最终得分。

        System.out.println("当前选手得分是：" + getAvgScore(6)); // 选手的最终得分
    }
    public static double getAvgScore(int number) { // number为评委人数
        // 1.定义一个动态初始化数组，存储评委的分数
        int[] scores = new int[number]; // 6位评委
        // scores = {0, 0, 0, 0, 0, 0};

        // 2.遍历数组，依次录入评委打分
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            // i = 0, 1, 2, 3, 4, 5
            System.out.println("请输入第" + (i + 1) + "位评委的打分：");
            int score = sc.nextInt();
            scores[i] = score;
        }

        // 3.从数组中计算总分，找到最高分、最低分
        int sum = 0; // 总分的初始值
        int max = scores[0]; // 最高分
        int min = scores[0]; // 最低分

        // 遍历数组找出需要的数据
        for (int i = 0; i < scores.length; i++) {
            // i = 0, 1, 2, 3, 4, 5
            // 累加总分
            sum += scores[i];
            // 判断最高分
            if (scores[i] > max) {
                max = scores[i];
            }
            // 判断最低分
            if (scores[i] < min) {
                min = scores[i];
            }
        }
        // 4.计算平均分并返回
        return 1.0 * (sum - max - min) / (number - 2);
    }
}
